#ifndef DATABASE_DATABASE_H
#define DATABASE_DATABASE_H
/*

*/

#include "table.h"

#include <map>
#include <mutex>
#include <string>


namespace Database
{
using std::map;
using std::mutex;
using std::string;

class Database
{
public:
    Database() = delete;
    Database(const string& path);
    Database(const Database&) = delete;
    ~Database();

	void createTable(/* TODO */);
	void dropTable(const string& name);
	void alterTable(/* TODO */);
	void renameTable(/* TODO */);

	Table& openTable(const string& name);
	void closeTable(/* TODO */);

private:
    string path_;
    map<string, Table *>  tables_;
    mutex lockOpen_;
};

}   // namespace Database

#endif

